#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>

//回文数
bool isPalindrome(int x)
{
    if (x >= 0)
    {
        int count = 0;
        int t = x;
        while (t)
        {
            t /= 10;
            count++;
        }
        t = x;
        char *NumChar = malloc(sizeof(char) * count + 1);
        for (int i = count - 1; i >= 0; i--)
        {
            NumChar[i] = (t % 10) + '0';
            t /= 10;
        }
        NumChar[count] = '\0';
        int len = strlen(NumChar);
        for (int i = 0; i < len / 2; i++)
        {
            if (NumChar[i] != NumChar[len - 1 - i])
            {
                free(NumChar);
                return false;
            }
        }
        return true;
    }
    return false;
}

// 其他思路：反转数字，判断与原数字是否相等:注意：不能在原数字上进行操作；
// int n = 1234;
// int ren = 0;
// while (n)
// {
//     ren = ren * 10 + n % 10;
//     n /= 10;
// }

int main()
{
    int x = 1233213;
    int ret = isPalindrome(x);
    printf("%d\n", ret);
}
